package javase_class_250911;

/**
 * ClassName: Ticket
 * Package: javase_class_250911
 * Description:
 *
 * @Author harkjeans
 * @Create 2025/9/11 14:56
 * @Version 1.0
 */
public class Ticket implements Runnable{
    private int ticketCount = 10; // 共享资源

    @Override
    public void run() {
        while (ticketCount > 0) {
            try {
                Thread.sleep(100); // 模拟出票时间
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + " 卖出一张票，剩余: " + (--ticketCount));
        }
    }
    public static void main(String[] args) {
        Ticket ticket = new Ticket(); // 创建一个票源
        // 创建三个线程（窗口），共享同一个票源
        Thread window1 = new Thread(ticket, "窗口1");
        Thread window2 = new Thread(ticket, "窗口2");
        Thread window3 = new Thread(ticket, "窗口3");

        // 同时开始卖票
        window1.start();
        window2.start();
        window3.start();
    }
}
//核心问题：多个线程（窗口）同时操作一个共享资源（票数 ticketCount），导致数据不一致。